#!/usr/bin/env python
# -*- coding: utf-8 -*-
#创建SocketServerTCP服务器：

import os
import json

#所有客户端连接
#{socket1:"主控mac1地址",socket2:"主控mac2地址",...}
clients ={}

#所有设备
#{"主控mac1地址":[mac1,mac2,mac3,...],...}
devides ={}

#所有控制端
#pkey为公开用户名,skey为秘钥,macs为当前用户可管理的主控mac地址权限,socket为用户连接的socket
#{"pkey":{"socket":-1,"key":"skey1","macs":["主控mac1","主控mac2",...]},"pkey2":{"socket":-1,"key":"skey2","macs":["主控mac1","主控mac2",...}}
admins = {}

#{"type":0,"id":1,"hash":"用户名+时间戳+密钥的hash256值","pkey":"用户名key","time":时间戳,data":{"p":"参数数据","cmd":"要运行的命令","macs":[{"主控mac地址":["mac1","mac2",...]},...]}}
#type:0,发送控制的控制客户端,后边的数据就是控制客户端数据,id:发送指令编号,用于区分同一指令的多次发送
#p:发送给客户端的参数,
#cmd:发送给客户端的命令,s:开始运行,e:停止运行,a:寻问在线设备,r:询问当前设备状态(是否运行),p:查寻指令mac地址设置参数
#{"type":1,"erro":0,"data":{"macs":["主控mac地址":["mac1","mac2",...]]}}
#type:1,上报新设备:上报客户端mac地址和子mac地址
#{"type":2,"erro":0,"id":1}
#type:2.返回指令是否成功:返回发送的指令是否成功,数据要返回给发送数据的连接,id:发送指令编号
#{"type":3,"erro":0,"id":1,"data":{"macs":[{"主控mac地址":[{"mac1":1},{"mac2":1},...]},...]}}
#type:3.返回查寻后设备运行状态:数据要返回给请求的连接
#{"type":4,"erro":0,"id":1,"data":{"macs":[{"主控mac地址":[{"mac1":"参数数据"},{"mac2":"参数数据"},...]},...]}}
#type:4.返回查寻后设备运行状态:数据要返回给请求的连接
#处理服务器接收到的数据,并处理后返回


#1.登陆,2.发送请求,3.请求返回
#管理员登录
def adminLogin(s,dat):
    pass

#管理员请求消息
def adminData(s,dat):
    pass

#管理员返回消息
def adminBack(s,dat):
    pass

#客户端登录
def clientLogin(s,dat):
    pass
#客户端请求消息
def clientData(s,dat):
    pass
#客户端返回消息
def clientBack(s,dat):
    pass

def dataPort(client,dat):
    datdic = None
    if type(dat) != str:
        datdic = json.loads(dat.decode())
    else:
        datdic = json.loads(dat)
